package com.focus.pay.ali.model.order;

import com.alipay.api.domain.*;
import com.focus.pay.core.domain.PayModelDomain;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author 赵参谋
 * @version $
 * =========================================================================
 * 变更履历：
 * -------------------------------------------------------------------------
 * 变更编号     变更时间    变更人   变更原因    变更内容
 * -------------------------------------------------------------------------
 * <p>
 * @description： 交易创建接口
 * @date 2022/1/20 10:37
 * <link>https://opendocs.alipay.com/open/02ekfj</link>
 **/
@Data
@Builder
public class AliPayModelCreate extends PayModelDomain {

    /**
     * 通知地址
     */
    private String notifyUrl;

    /**
     * 商户订单号
     */
    private String out_trade_no;
    /**
     * 订单总金额。
     * 单位元
     */
    private BigDecimal total_amount;

    /**
     * 订单标题
     */
    private String subject;

    /**
     * 产品码
     */
    private String product_code;

    /**
     *卖家支付宝用户ID
     */
    private String seller_id;

    /**
     * 买家支付宝用户ID
     */
    private String buyer_id;

    /**
     * 订单附加信息
     */
    private String body;

    /**
     * 订单包含的商品列表信息，json格式
     */
    private List<GoodsDetail> goods_detail;

    /**
     * 订单绝对超时时间
     */
    private String time_expire;

    /**
     * 订单相对超时时间
     */
    private String timeout_express;

    /**
     * 描述结算信息，json格式
     */
    private List<SettleInfo> settle_info;

    /**
     * 业务扩展参数
     */
    private ExtendParams extend_params;

    /**
     * 商户传入业务信息，具体值要和支付宝约定，应用于安全，营销等参数直传场景，格式为json格式
     */
    private BusinessParams business_params;

    /**
     * 可打折金额。
     */
    private BigDecimal discountable_amount;

    /**
     * 不可打折金额。
     */
    private BigDecimal undiscountable_amount;

    /**
     * 商户门店编号
     */
    private String store_id;

    /**
     * 商户操作员编号。
     */
    private String operator_id;

    /**
     * 商户机具终端编号。
     */
    private String terminal_id;

    /**
     * 物流信息
     */
    private LogisticsInfo  logistics_detail;

    /**
     * 收货人及地址信息
     */
    private ReceiverAddressInfo receiver_address_info;


}
